home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 2000 July: Mac OS SDK / Dev.CD Jul 00 SDK2.toast / Development Kits / Cross Platform / QuickTime 4.1.2 Windows SDK / RIncludes / ImageCodec.r < prev    next >
Encoding:
Text File  |  2000-04-12  |  7.5 KB  |  268 lines  |  [TEXT/R*ch]

  1. /*
  2.      File:        ImageCodec.r
  3.  
  4.      Contains:    QuickTime interfaces
  5.  
  6.      Version:    Technology:    
  7.                  Release:    QuickTime 4.1
  8.  
  9.      Copyright:    © 1990-1999 by Apple Computer, Inc., all rights reserved
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. */
  17.  
  18. #ifndef __IMAGECODEC_R__
  19. #define __IMAGECODEC_R__
  20.  
  21. #ifndef __CONDITIONALMACROS_R__
  22. #include "ConditionalMacros.r"
  23. #endif
  24.  
  25. #include "Components.r"
  26. #include "ImageCompression.r"
  27. #define kParameterTitleName             'name'
  28. #define kParameterTitleID                 1
  29.  
  30. #define kParameterWhatName                 'what'
  31. #define kParameterWhatID                 1
  32.  
  33. #define kParameterVersionName             'vers'
  34. #define kParameterVersionID             1
  35.  
  36. #define kParameterRepeatableName         'pete'
  37. #define kParameterRepeatableID             1
  38.  
  39.  
  40.     #define kParameterRepeatableTrue    long { "1" }
  41.     #define kParameterRepeatableFalse    long { "0" }
  42.  
  43. #define kParameterAlternateCodecName     'subs'
  44. #define kParameterAlternateCodecID         1
  45.  
  46. #define kParameterSourceCountName         'srcs'
  47. #define kParameterSourceCountID         1
  48.  
  49. #define kParameterDependencyName         'deep'
  50. #define kParameterDependencyID             1
  51.  
  52.  
  53.     #define kParameterListDependsUponColorProfiles    OSType { "prof" }
  54.     #define kParameterListDependsUponFonts            OSType { "font" }
  55.  
  56. #define kParameterEnumList                 'enum'
  57. #define kParameterAtomTypeAndID         'type'
  58.  
  59.         #define kNoAtom                         OSType { "none" }
  60.         #define kAtomNoFlags                     long { "0" }
  61.         #define kAtomNotInterpolated             long { "1" }
  62.         #define kAtomInterpolateIsOptional         long { "2" }
  63.         #define kAtomMayBeIndexed                 long { "4" }
  64.         #define kAtomNotInterpMayBeIndexed        long { "5" }
  65.         #define kAtomOptionalInterpMayBeIndexed    long { "6" }
  66.  
  67. #define kParameterDataType                 'data'
  68.  
  69.         #define kParameterTypeDataLong         long { "2" }
  70.         #define kParameterTypeDataFixed     long { "3" }
  71.         #define kParameterTypeDataRGBValue     long { "8" }
  72.         #define kParameterTypeDataDouble     long { "11" }
  73.         #define kParameterTypeDataText         OSType { "text" }
  74.         #define kParameterTypeDataEnum        OSType { "enum" }
  75.         #define kParameterTypeDataBitField     OSType { "bool" }
  76.         #define kParameterTypeDataImage        OSType { "imag" }
  77.  
  78. #define kParameterDataRange             'rang'
  79.  
  80.         #define kParameterImageNoFlags        long { "0" }
  81.         #define kParameterImageIsPreset        long { "1" }
  82.  
  83.  
  84.         #define kStandardPresetGroup        OSType { "pset" }
  85.  
  86. #define kParameterDataBehavior             'ditl'
  87.  
  88.     // items edited via typing
  89.         #define kParameterItemEditText         OSType { "edit" }
  90.         #define kParameterItemEditLong         OSType { "long" }
  91.         #define kParameterItemEditFixed     OSType { "fixd" }
  92.         #define kParameterItemEditDouble     OSType { "doub" }
  93.  
  94.     // items edited via control(s)
  95.         #define kParameterItemPopUp         OSType { "popu" }
  96.         #define kParameterItemRadioCluster     OSType { "radi" }
  97.         #define kParameterItemCheckBox         OSType { "chex" }
  98.         #define kParameterItemControl         OSType { "cntl" }
  99.         
  100.     // special user items
  101.         #define kParameterItemLine             OSType { "line" }
  102.         #define kParameterItemColorPicker     OSType { "pick" }
  103.         #define kParameterItemGroupDivider    OSType { "divi" }
  104.         #define kParameterItemStaticText    OSType { "stat" }
  105.         #define kParameterItemDragImage        OSType { "imag" }
  106.  
  107.  
  108.  
  109.         // flags valid for lines and groups
  110.         #define kGraphicsNoFlags             long { "0" }
  111.         #define kGraphicsFlagsGray             long { "1" }
  112.  
  113.         // flags valid for groups
  114.         #define kGroupNoFlags                         long { "0" }
  115.         #define kGroupAlignText                     long { "65536" }
  116.         #define kGroupSurroundBox                     long { "131072" }
  117.         #define kGroupMatrix                         long { "262144" }
  118.         #define kGroupNoName                        long { "524288" }
  119.         #define kGroupSurroundWithGray                long { "131073" }
  120.         #define kGroupSurroundWithGrayAlign            long { "196609" }
  121.         #define kGroupSurroundWithGrayNoName        long { "655361" }
  122.         #define kGroupSurroundWithGrayAlignNoName    long { "720897" }
  123.         #define kGroupAlignTextNoName                long { "589824" }
  124.         
  125.         // flags valid for popup/radiocluster/checkbox/control
  126.         #define kDisableControl            long { "1" }
  127.         #define kDisableWhenNotEqual    long { "1" }
  128.         #define kDisableWhenEqual        long { "17" }
  129.         #define kDisableWhenLessThan    long { "33" }
  130.         #define kDisableWhenGreaterThan    long { "49" }
  131.  
  132.         // flags valid for popups
  133.         #define kPopupStoreAsString        long { "65536" }
  134.  
  135. #define kParameterDataUsage             'use '
  136.  
  137.         #define kParameterUsagePixels            OSType { "pixl" }
  138.         #define kParameterUsageRectangle        OSType { "rect" }
  139.         #define kParameterUsagePoint            OSType { "xy  " }
  140.         #define kParameterUsage3DPoint            OSType { "xyz " }
  141.         #define kParameterUsageDegrees            OSType { "degr" }
  142.         #define kParameterUsageRadians            OSType { "rads" }
  143.         #define kParameterUsagePercent            OSType { "pcnt" }
  144.         #define kParameterUsageSeconds            OSType { "secs" }
  145.         #define kParameterUsageMilliseconds        OSType { "msec" }
  146.         #define kParameterUsageMicroseconds        OSType { "µsec" }
  147.         #define kParameterUsage3by3Matrix        OSType { "3by3" }
  148.         #define kParameterUsageCircularDegrees    OSType { "degc" }
  149.         #define kParameterUsageCircularRadians    OSType { "radc" }
  150.  
  151. #define kParameterDataDefaultItem         'dflt'
  152. #define kParameterInfoLongName             '©nam'
  153. #define kParameterInfoCopyright         '©cpy'
  154. #define kParameterInfoDescription         '©inf'
  155. #define kParameterInfoWindowTitle         '©wnt'
  156. #define kParameterInfoPicture             '©pix'
  157. #define kParameterInfoManufacturer         '©man'
  158. #define kParameterInfoIDs                 1
  159.  
  160.  
  161. type 'cdec' {
  162.     hex string;
  163. };
  164.  
  165.  
  166. type 'cdci' {
  167.     pstring[31];
  168.     hex integer    version;
  169.     hex integer    revlevel;
  170.     hex longint    vendor;
  171.     hex longint    decompressFlags;
  172.     hex longint    compressFlags;
  173.     hex longint    formatFlags;
  174.     byte        compressionAccuracy;
  175.     byte        decompressionAccuracy;
  176.     integer        compressionSpeed;
  177.     integer        decompressionSpeed;
  178.     byte        compressionLevel;
  179.     byte        resvd;
  180.     integer        minimumHeight;
  181.     integer        minimumWidth;
  182.     integer        decompressPipelineLatency;
  183.     integer        compressPipelineLatency;
  184.     longint        privateData;
  185. };
  186.  
  187.  
  188. #define    compressorComponentType            'imco'
  189. #define    decompressorComponentType        'imdc'
  190.  
  191.  
  192. /* Resource type used for the creation of parameter description atoms */
  193. type 'atms' {
  194.     longint;    // root atom count
  195.     
  196.     array AtomArray {
  197.         literal longint;        // atomType
  198.         longint;                // atomID
  199.         longint noChildren = 0;    // children
  200.         longint =  $$CountOf(AtomData);
  201.         array AtomData {
  202.             switch {
  203.             case long:
  204.                 key literal longint = 'long';
  205.                 pstring;            // data
  206.             case short:
  207.                 key literal longint = 'shrt';
  208.                 pstring;            // data
  209.             case noMininumFixed:
  210.                 key literal longint = 'nmiF';
  211.                 pstring = "";        // data
  212.             case noMaximumFixed:
  213.                 key literal longint = 'nmaF';
  214.                 pstring = "";        // data
  215.             case noMininumDouble:
  216.                 key literal longint = 'nmiD';
  217.                 pstring = "";        // data
  218.             case noMaximumDouble:
  219.                 key literal longint = 'nmaD';
  220.                 pstring = "";        // data
  221.             case fixed:
  222.                 key literal longint = 'fixd';
  223.                 pstring;            // data
  224.             case double:
  225.                 key literal longint = 'doub';
  226.                 pstring;            // data
  227.             case string:
  228.                 key literal longint = 'str ';
  229.                 pstring;            // data
  230.             case lstring:
  231.                 key literal longint = 'lstr';
  232.     LongStringStart:    longint = ((LongStringEnd[$$ArrayIndex(AtomArray),$$ArrayIndex(AtomData)] - LongStringStart[$$ArrayIndex(AtomArray),$$ArrayIndex(AtomData)]) >> 3) - 4;
  233.                 hex string [$$Word(LongStringStart[$$ArrayIndex(AtomArray),$$ArrayIndex(AtomData)]) - 4];
  234.     LongStringEnd:
  235.             case OSType:
  236.                 key literal longint = 'osty';
  237.                 pstring;            // data
  238.             };
  239.             
  240.         };
  241.     };
  242. };
  243.  
  244. /* used by decompressors to list their AVI file four cc's */
  245. type 'avvd' {
  246.     array {
  247.         literal longint;                    /* avi four cc type */
  248.     };
  249. };
  250.  
  251. /* used by compressors to list their AVI file four cc's */
  252. type 'avvc' {
  253.     array {
  254.         literal longint;                    /* avi four cc type */
  255.     };
  256. };
  257.  
  258. /* used by compressors to list their supported compress pixel format surfaces */
  259. type 'cpix' {
  260.     array {
  261.         literal longint;
  262.     };
  263. };
  264.  
  265.  
  266. #endif /* __IMAGECODEC_R__ */
  267.  
  268.